// 类
// function People(name,age){
//     // 实例属性
//     // console.log(this);//构造函数的this指的是当前实例化对象
//     this.name=name,
//     this.age=age,
//     People.count++
// }
// // 实例方法
// People.prototype.showName=function(){
//     console.log('我的名字是'+this.name);
//     // 构造函数通常把方法定义在原型上
// }
// // 静态属性
// People.count=0;
// // 静态方法
// People.getCount=function(){
//     console.log('当前数字为'+People.count);
//     // console.log(this);//指向构造函数对象
//     // console.log(this.age);undefined this不是指向实例化对象，所以获取不到
// }
// let p1=new People('zsb',24)
// console.log(p1);
// p1.showName()

// let p2=new People('zhangsan',18)
// console.log(p2);
// // People是类 p1 p2是实例化对象
// console.log(People.count);
// People.getCount()

// let str =new String('qwe')
// console.log(str);

// let arr=new Array(1,2,3)
// console.log(arr);

// let obj=new Object()
// obj.name='zz'
// console.log(obj);


// 静态方法
// console.log(Math.random());

console.log('-----分割线 继承-----');
// 父类
function Animal(name){
    this.name=name
}
Animal.prototype.showName=function(){
    console.log('名字是'+this.name);
}

// 子类
function Dog(name,color){
    Animal.call(this,name)//继承熟悉
    this.color=color//自己独有的属性
}
Dog.prototype=new Animal()
Dog.prototype.constructor=Dog
let d1=new Dog('duoduo',"yellow")
console.log(d1);
d1.showName()